On a communication network, data that needs to be sent to multiple receiver devices may be sent via broadcast, multicast or unicast mechanisms. In a broadcast transmission, data is directed to all devices on the network. A potential problem with broadcasting is that the data is delivered (or attempted to be delivered) to all devices on the network, regardless of the number of intended recipient devices. This can lead to difficulties in that, for example, devices for which the transmission was not intended may still consume power decoding the broadcast transmission.
A second possibility for transmitting data is unicasting. In unicasting, data is sent to the receiver devices individually, that is, each device is individually addressed. This means that if the same data is to be sent to multiple devices, the data must be copied and sent to each device in turn. The requirement of copying the data for each device means that unicasting can become very inefficient and bandwidth intensive when the number of receiver devices is large.
A multicast transmission is one in which data is directed to a sub-group of devices within a communication network. The devices belonging to a particular sub-group may be identified by an address unique to that group. Unlike in broadcasting, multicasting does not require that data be directed to every device on the network. This leads to a reduction in redundant transmissions. Multicasting has the advantage over unicasting in that only a single copy of the data is sent from the transmitting device, regardless of the number of receiver devices.
In a network in which data is sent via routers, multicasting is more efficient than broadcasting because the routers will only direct the data to areas in which the intended recipients lie. Multicasting thus includes the advantages of both unicast and broadcast, and is often employed in multimedia applications such as video conferencing and internet radio.
FIG. 1 illustrates the stages of a unicast transmission. A source data stream 101 is sampled for a time TS. The sampled portion is then encoded by an encoding operation 102 to produce an encoded portion. The encoded portion is a discrete packet of data. The size of the packet determines the duration of the portion of the source data stream that can be encoded. The maximum size of the data packet that can be transmitted will depend on the protocol being used by the communication network. The encoding operation takes time TE. The encoded portion is then transmitted to a receiver device by a transmitting operation 103 to produce a transmitted portion. The transmitting operation takes time TT. Once the transmitted portion is received by the receiver device, it is decoded by a decoding operation 104 to produce a decoded portion. The decoding operation takes time TD. The latency for this transmission is the time taken from the beginning of the sampling of the source data stream portion through to the end of the decoding operation 104.
Bluetooth is a technology standard that allows wireless communication between devices. It allows several devices to be connected on a network known as a piconet. A communication network using Bluetooth will normally consist of a “master” device and one or more “slave” devices. A master device can only transmit data packets to a slave device in designated “master-to-slave” time slots, and similarly, a slave can only transmit data packets to the master in designated “slave-to-master” time slots. An advantage of Bluetooth is that data packets from the master to the slave can be re-transmitted until an acknowledgement of receipt from the slave is received by the master device. This leads to a reliable transmission of data between devices. A potential problem with Bluetooth is that multicast transmission is not supported. A master can either communicate with a slave device via a unicast transmission or via a broadcast transmission. In a broadcast transmission, data is transmitted from the master device to every slave device on the network. This can be efficient in that data can be sent to all the slave devices with a single transmission, however, slave devices cannot acknowledge receipt of a broadcast transmission, so the master does not know if an individual slave device has received the broadcast message correctly. If it is desirable to transmit a data packet reliably to a sub-group of slave devices on a network, it is necessary to send a unicast transmission to each of the slave devices in turn. This advantageously allows for an acknowledgement of receipt to be sent from each slave device.
In an example of a unicast transmission on a Bluetooth network, and referring to the time interval in FIG. 1, the transmission time TT represents the time required for the relevant master-to-slave and slave-to-master time slots. The latency time TL for the data packet transmission involving sampled data is given by:TL=TS+TE+TT+TD where TS is the time required to sample the data, TE is the time required to encode the data, TT is the time required to transmit the data and TD is the time required to decode the data.
FIG. 1 illustrates a packet representing just one portion of a source data stream being transmitted. In practice, it is likely that multiple packets representing multiple portions of the source data stream will need to be transmitted.
FIG. 2a shows the stages of a unicast transmission of packets representing succeeding portions of a data stream 201. A first portion 202 of the data stream is sampled for a time TS1. The portion 202 is encoded by a first encoding operation 203 to produce a first encoded portion, or packet. The encoding operation 203 takes time TE1. The first encoded portion is transmitted by a first transmitting operation 204 to produce a first transmitted portion. The transmitting operation 204 takes time TT1. A second portion 205 of the data stream is sampled after the sampling of the first portion is complete. The second portion is sampled for time TS2. Once the second portion has been sampled it is encoded by a second encoding operation 206 to produce a second encoded portion, or packet. The encoding operation 206 takes time TE2. The second encoded portion is transmitted by a second transmitting operation 207 to produce a second transmitted portion. The transmitting operation 207 takes time TT2.
It will often be desirable for the data rate of the source data stream itself to be less than or equal to the average rate at which the source data is received at the receiver device. This is particularly true when the data stream is an audio or video stream. FIG. 2a illustrates a unicast transmission that satisfies this condition. FIG. 2b shows the stages of a unicast transmission where the data rate of the source data stream is greater than the average rate at which data is received at the receiver device.
In FIG. 2b, a first portion 210 of the source data stream 201 is sampled for a time TS. The portion 210 is encoded by a first encoding operation 211 to produce a first encoded portion, or packet. The encoding operation 211 takes time TE. The first encoded portion is transmitted by a first transmitting operation 212 to produce a first transmitted portion. The transmitting operation 212 takes time TT. Once the transmitted portion is received by the receiver device, it is decoded by a first decoding operation 216 to produce a first decoded portion. A second portion 213 of the data stream is sampled after the sampling of the first portion is complete. The second portion is sampled for time TS. Once the second portion has been sampled it is encoded by a second encoding operation 214 to produce a second encoded portion, or packet. The encoding operation 214 takes time TE. The second encoded portion is transmitted by a second transmitting operation 215 to produce a second transmitted portion. The transmitting operation 207 takes time TT. Once the transmitted portion is received by the receiver device, it is decoded by a second decoding operation 217 to produce a second decoded portion.
Referring to FIG. 2b, the time between the completion of successive decoding operations is given by TSD=TE+TT. If, for example, the source data stream were an audio or video stream, once the decoding operation 216 was complete the receiver device could play the first portion 210 of the audio or video stream. The duration of the audio/video stream that the receiver could play would be equal to the sampling time TS. The receiver cannot begin to play the succeeding portion 213 of the audio/video stream until the decoding operation 217 has been completed. Hence if TS<TSD the receiver device would have finished playing the first portion of the audio/video stream before it could begin playing the succeeding portion 213. This would introduce unwanted time delays into the audio/video stream when being played by the receiver device.
In some transmitting devices it may be possible for the encoding and transmitting operations to overlap in time. The degree of overlap is constrained by the requirement that the second transmission operation cannot begin until the first transmission operation has been completed. This is a requirement of unicast transmissions over a shared link. If the encoding and transmitting operations are to overlap, and it is desired for the data rate of the source data stream to be less than the average rate at which the source data is received at the receiver device then the sampling time TS should satisfy both of the following conditions:TS>TE TS>TT 
Conversely if the encoding and transmitting operations are not to overlap and it is desired for the data rate of the source data stream to be less than the average rate at which the source data is received at the receiver device then the sampling time TS should satisfy the following condition:TS>TE+TT 
In some receiving devices it may be possible for the receiver to begin to decode the transmitted portion before the entirety of the transmitted portion is received. If the decoding and transmission operations are to overlap, and it is desired for the data rate of the source data stream to be less than the average rate at which the source data is received at the receiver device then the sampling time TS should satisfy both of the following conditions:TS>TT TS>TD 
Conversely if the decoding and transmitting operations are not to overlap and it is desired for the data rate of the source data stream to be less than the average rate at which the source data is received at the receiver device then the sampling time TS should satisfy the following condition:TS>TT+TD 
FIG. 3 shows the stages of multiple unicast transmissions used to transmit source data to multiple receiver devices. For clarity FIG. 3 illustrates unicast transmission of only one portion of a source data stream 301. A portion 302 of the source data stream is sampled for a time TS. The sampled portion is then encoded by an encoding operation 303 to produce an encoded portion, or packet. The encoding operation takes time TE. The encoded portion is then transmitted to each receiver device in turn by respective transmitting operations 304, 305, 306. The first transmission operation 304 transmits the encoded portion to a first receiver device and takes time I′m. The second transmission operation 305 transmits the encoded portion to a second receiver device and takes time TT2. The third transmission operation 306 transmits the encoded portion to a third receiver device and takes time TT3. The first transmitted portion is decoded at the first receiver device by a first decoding operation 307. The operation 307 takes time TD1. The second transmitted portion is decoded at the second receiver device by a second decoding operation 308. The operation 308 takes time TD2. The third transmitted portion is decoded at the third receiver device by a third decoding operation 309. The operation 309 takes time TD3.
In the example of FIG. 3 the source data is transmitted to three receiver devices. In a practice a multiple unicast transmission could be to any number of receiver devices. In an example of a transmitter device carrying out multiple unicast transmissions the encoding operation may overlap with the transmitting operations. If the operations do overlap and it is desirable for the data rate of the source data stream to be less than the average rate at which the source data is received at the receiver device, the duration of the sampled portion must be longer than the sum of the transmission times and the encoding time. Expressed mathematically, it is preferable that both the following conditions are satisfied:TS>TT1+Tr2+TT3 TS>TE 
If instead there is no overlap between the encoding and transmitting operations and it is desirable for the data rate of the source data stream to be less than the average rate at which the source data is received at the receiver device, it is required that:TS>TT1+TT2+TT3+TE 
If the receiver device can begin decoding the transmitted portion before the entirety of the transmitted portion is received, that is, the decoding and transmission operations are to overlap, and it is desired that the data rate of the source data stream is less than the average rate at which the source data is received at the receiver device, the following conditions should be satisfied:TS>TT1+TT2+TT3 TS>TD 
Conversely if the decoding and transmitting operations are not to overlap and it is desired that the data rate of the source data stream is less than the average rate at which the source data is received at the receiver device, the sampling time TS should satisfy the following condition:TS>TT1+TT2+TT3+TD 
Transmitting the encoded portion to each of the receiver devices in turn means that the latency associated with each receiver device will be different. For example, the latency associated with transmitting data to the third receiver device, TL3 includes the time taken to transmit the encoded data to the first and second receiver devices, given by TT1 and TT2 respectively. It is given by the expression:TL3=TS+TE+TT1+TT2+TT3+TD3 
It is apparent that increasing the number of receiver devices causes the worst case latency to increase. The latencies associated with each receiver device will also be different, and so each receiver device will be operating at a different level of performance. Furthermore as the number of receiver devices increases the time taken to transmit the encoded portion to all of the receiver devices will increase. This means that if it is desirable for the data rate of the source data stream to be less than the average rate that the source data is received at the receiver devices the duration of the sampled portion of the source data must also be increased. This could lead to the situation where very large data packets have to be transmitted or to a situation where the required size of the data packet is larger than that available with the technology implemented on the communication network.
There is thus a need for an improved method of multiple unicast transmissions that reduces the worst case latency.